/**
 * @author root
 */
Package("xclab.mvc.patterns.observer").Class("Observer", {
        Observer: function(notifyMethod, notifyContext){
            this.setNotifyMethod(notifyMethod);
            this.setNotifyContext(notifyContext);
            
        },
        Methods: {
            setNotifyMethod: function(notifyMethod){
                this.notify = notifyMethod;
            },
            setNotifyContext: function(notifyContext){
                this.context = notifyContext;
            },
            getNotifyMethod: function(){
                return this.notify;
            },
            getNotifyContext: function(){
                return this.context;
            },
            notifyObserver: function(notification){
                this.getNotifyMethod().apply(this.getNotifyContext(), [notification]);
            },
            compareNotifyContext: function(p_context){
                return this.getNotifyContext() == p_context;
            }
        }
    });
